package chapter6;

/**
 * 函数式接口，包含一个抽象方法和一个默认方法
 */
@FunctionalInterface
interface Displayable {
    void display();
    default int add(int a, int b) {
        return a + b;
    }
}

public class LambdaAndInner {
    private int age = 12;
    private String name = "疯狂软件教育中心";
    public void test() {
        String book = "Java疯狂讲义";
        //使用lambda表达式创建函数式接口对象，之后可以调用函数式接口中的抽象方法和默认方法
        Displayable dis = ()-> {
            System.out.println("book局部变量的值为:" + book);
            System.out.println("外部类的age值为:" + age);
            System.out.println("外部类的name值为:" + name);
        };
        dis.display();
        System.out.println(dis.add(5, 3));
    }

    public static void main(String[] args) {
        LambdaAndInner lai = new LambdaAndInner();
        lai.test();
    }
}
